/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2022-2022. All rights reserved.
 * Description: alg coll remote lookup.
 * Author: qingjicheng
 * Create: 2022-11-28
 */

#ifndef ALG_COLL_REMOTE_LOOKUP_H
#define ALG_COLL_REMOTE_LOOKUP_H
#include "alg_remote_lookup.h"

namespace hccl {

class AlgCollRemoteLookUp : public AlgRemoteLookUp {
public:
    explicit AlgCollRemoteLookUp();
    virtual ~AlgCollRemoteLookUp() = default;
    HcclResult Process(HcclOpPtr opPtr) override;

private:
    HcclResult AlgGetLookupRequest(HcclOperator<EmbeddingServiceParam> *opPtr) override;
    HcclResult AlgSetLookupResponse(HcclOperator<EmbeddingServiceParam> *opPtr) override;

    FuncTable funcTable_;
    u32 psId_ = 0;
    u64 keyOffsetToValueOffset_ = 0;
    u64 actualKeyCount_ = 0;
};
}
#endif
